import dayjs from 'dayjs'
import mixin from '@/mixins'
import store from '@/store'
// Vue.use({
//   install:function(Vue){}
// })
// Vue.use((Vue)=>{})

// Vue.use({
// 	install: function(Vue) {
// 		Vue.directive('imgError', {
// 			// 当被绑定的元素插入到 DOM 中时……
// 			inserted: function(el, { value }) {
// 				// console.log(el, obj, 887766) //  el  获取的是dom元素
// 				el.onerror = function() {
// 					//  监听dom元素加载失败
// 					console.log(2233)
// 					el.src = value
// 				}
// 			}
// 		})

// 		Vue.filter('formatTimes', (obj) => {
// 			return dayjs(obj).format('YYYY-MM-DD')
// 		})
// 	}
// })

// Vue.use(plugin)

export default {
  install: function(Vue) {
    Vue.directive('imgError', {
      // 当被绑定的元素插入到 DOM 中时……
      inserted: function(el, { value }) {
        // console.log(el, obj, 887766) //  el  获取的是dom元素
        el.onerror = function() {
          //  监听dom元素加载失败
          console.log(2233)
          el.src = value
        }
      }
    })

    Vue.filter('formatTimes', (obj) => {
      return dayjs(obj).format('YYYY-MM-DD')
    })

    /* 混入  解决组件有相同的操作 */
    // Vue.mixin(mixin)
    // 注册一个全局自定义指令 `v-focus`
    // 注册一个全局自定义指令 `v-allow`
    Vue.directive('allow', {
      inserted: function(el, binding) {
        // 从vuex中取出points,
        console.log(binding.value, 1234567898)
        console.log(binding, 1234567898)
        const points = store.state.user.userInfo.roles.points
        // 如果points有binding.value则显示
        if (points.includes(binding.value)) {
          // console.log('判断这个元素是否会显示', el, binding.value)
        } else {
          el.parentNode.removeChild(el)
          // el.style.display = 'none'
        }
      }
    })
  }
}

/*
Vue.use(参数)   参数：对象 ||  函数

对象：需要有一个install函数  ，  函数有一个形参就是Vue

使用对象：  Vue.use(对象)
 */
